Talk to the City (TttC)の環境構築作業ログ
2024−11−03追記
その後ローカルの環境構築が成功したので、下記URLに続きを記載しました
このドキュメントについて:
開発知識はコマンドラインのlsコマンドくらいはかろうじて知っているレベル感で、解説を書くための語彙すらないです。
なので、以下の文章は当日西尾さん(/nishio/自己紹介)に口頭で教えてもらった自分用の拙いメモをClaude3.5 Sonnetに校正してもらったものです。 少しでも気になる点などがあれば加筆修正したいので、教えていただけたら大変助かります!
進捗状況
プロジェクトのクローンと仮想環境の作成まで成功しました。
必要なパッケージのインストール時にエラーが発生し、つまずきました。
エラー解決のためpyenvをインストールし、Python 3.10.0をインストールしましたが、その後の作業は未完了です。
Pythonの依存関係のインストール、OpenAI APIキーの設定、JavaScriptの依存関係のインストール、およびTttCの実行には至っていません。
前提条件
ターミナルを操作する必要があります
Homebrewがインストールされていること
OpenAI APIキーが必要です
Pythonとnpmが必要です(Python 3.10以上推奨)
git lfsのインストールが必要な場合があります
実施した作業と結果
1. プロジェクトのセットアップ(成功)
code:_
cd talk-to-the-city-reports/scatter
Talk to the cityのリポジトリをクローンし、プロジェクトディレクトリに移動しました。
2. 仮想環境の作成(成功)
code:_
python3 -m venv venv
source venv/bin/activate
移動先で仮想環境を作成しました。
ターミナルの行頭に(venv)と表示されていることから、仮想環境が有効化されたことがわかります。
3. 必要なパッケージのインストール(失敗)
code:_
pip install -r requirements.txt
このステップでエラーが発生しました。詳細は後述します。
4. エラー解決のための対策(部分的に成功)
パッケージのインストールでエラーが発生したため、pyenvを使用してPythonのバージョン管理を行うことにしました。
1. Homebrewを更新(成功)
code:_
brew update
2. pyenvをインストール(成功)
code:_
brew install pyenv
3. シェルの設定ファイルを編集(成功)
code:_
code ~/.zshrc
このコマンドでVSCodeが開かない場合:
VSCodeが正しくインストールされていることを確認
VSCodeのコマンドラインツールがインストールされていない場合は、VSCodeを開き、コマンドパレット(Cmd+Shift+P)から「Shell Command: Install 'code' command in PATH」を実行
または、テキストエディタを使用して直接ファイルを編集:
nano ~/.zshrc や vim ~/.zshrc など
VSCodeまたは選択したエディタで、以下の行を~/.zshrcファイルに追加:
code:_
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
4. 設定を反映(成功)
code:_
source ~/.zshrc
5. Python 3.10.0をインストール(成功)
code:_
pyenv install 3.10.0
発生したエラーと対処
requirements.txtのインストール時のエラー
code:_
ERROR: Exception:
Traceback (most recent call last):
...
File "/private/var/folders/c_/sg60xq995w16x13g3lpjd_n00000gp/T/pip-build-env-j5l_af9u/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 10, in <module>
import distutils.core
ModuleNotFoundError: No module named 'distutils'
このエラーは、Python 3.12でdistutilsモジュールが削除されたことが原因と考えられます。pyenvを使用して Python 3.10.0 をインストールすることで解決を試みましたが、その後の作業は未実施です。
次のステップ(未実施)
1. pyenvでインストールしたPython 3.10.0を使用するように設定する:
code:_
pyenv local 3.10.0
2. 新しい仮想環境を作成し、その中で再度requirements.txtをインストールする:
code:_
python -m venv venv_3.10
source venv_3.10/bin/activate
pip install -r requirements.txt
---
python -c "import nltk; nltk.download('stopwords')"
3. JavaScriptの依存関係をインストールする:
code:_
cd next-app
npm install
4. OpenAI APIキーを設定する:
code:_
export OPENAI_API_KEY=sk-...
5. 例として提供されているデータセットを使用してパイプラインをテストする:
code:_
cd pipeline
python main.py configs/example-polis.json
6. 生成されたレポートを確認する:
code:_
npm install -g http-server
http-server -p 8080
注意点
Pythonのバージョンによっては互換性の問題が発生する可能性があります。
requirements.txtに記載されているパッケージのバージョンが古い可能性があるため、最新版との互換性に注意が必要です。
エラーメッセージは重要な情報源です。エラーが発生した場合は、メッセージを慎重に読み、必要に応じて検索エンジンで調べてみましょう。
OpenAI APIキーは秘密情報です。公開しないよう注意してください。
大規模なファイルを扱う場合は、git lfsのインストールが必要になる可能性があります。
個人メモ
操作
pwdコマンド:現在のディレクトリパスを表示
lsコマンド:ディレクトリ内のファイルとフォルダを表示
cd ..:親ディレクトリに移動
echo $SHELL:デフォルトシェルの確認(この環境では/bin/zsh)
codeコマンド:VSCodeを開く(事前にVSCodeのインストールと設定が必要)
リポジトリ構成
このリポジトリは以下の2つのプロジェクトを含む統合モノレポ:
場所:./turboディレクトリ
技術:JS / TS ベース
機能:インタラクティブなレポートと多様なLLMアプリケーションを生成
例:
Heal Michigan
Taiwan same-sex marriage
Mina protocol
Talk to the City Reports
場所:./scatterディレクトリ
技術:PythonとNextベース
機能:静的なインタラクティブ散布図レポートとサマリーを生成
例:
Recursive Public
GenAI Taiwan
注:「モノレポ」
モノレポ(monorepo)は、「モノリポジトリ」(monolithic repository)の略で、複数のプロジェクトを一つのリポジトリで管理する方式のことです。従来の「マルチレポ」(multi-repo)方式とは異なり、関連するすべてのプロジェクトやパッケージを一つのリポジトリ内に集約することを特徴としています。